package com.yckj.activechicken.business.purchase.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PurTaskExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PurTaskExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPurTaskIdIsNull() {
            addCriterion("pur_task_id is null");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdIsNotNull() {
            addCriterion("pur_task_id is not null");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdEqualTo(String value) {
            addCriterion("pur_task_id =", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdNotEqualTo(String value) {
            addCriterion("pur_task_id <>", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdGreaterThan(String value) {
            addCriterion("pur_task_id >", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdGreaterThanOrEqualTo(String value) {
            addCriterion("pur_task_id >=", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdLessThan(String value) {
            addCriterion("pur_task_id <", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdLessThanOrEqualTo(String value) {
            addCriterion("pur_task_id <=", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdLike(String value) {
            addCriterion("pur_task_id like", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdNotLike(String value) {
            addCriterion("pur_task_id not like", value, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdIn(List<String> values) {
            addCriterion("pur_task_id in", values, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdNotIn(List<String> values) {
            addCriterion("pur_task_id not in", values, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdBetween(String value1, String value2) {
            addCriterion("pur_task_id between", value1, value2, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurTaskIdNotBetween(String value1, String value2) {
            addCriterion("pur_task_id not between", value1, value2, "purTaskId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdIsNull() {
            addCriterion("pur_main_id is null");
            return (Criteria) this;
        }

        public Criteria andPurMainIdIsNotNull() {
            addCriterion("pur_main_id is not null");
            return (Criteria) this;
        }

        public Criteria andPurMainIdEqualTo(String value) {
            addCriterion("pur_main_id =", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdNotEqualTo(String value) {
            addCriterion("pur_main_id <>", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdGreaterThan(String value) {
            addCriterion("pur_main_id >", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdGreaterThanOrEqualTo(String value) {
            addCriterion("pur_main_id >=", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdLessThan(String value) {
            addCriterion("pur_main_id <", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdLessThanOrEqualTo(String value) {
            addCriterion("pur_main_id <=", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdLike(String value) {
            addCriterion("pur_main_id like", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdNotLike(String value) {
            addCriterion("pur_main_id not like", value, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdIn(List<String> values) {
            addCriterion("pur_main_id in", values, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdNotIn(List<String> values) {
            addCriterion("pur_main_id not in", values, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdBetween(String value1, String value2) {
            addCriterion("pur_main_id between", value1, value2, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurMainIdNotBetween(String value1, String value2) {
            addCriterion("pur_main_id not between", value1, value2, "purMainId");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserIsNull() {
            addCriterion("pur_liable_user is null");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserIsNotNull() {
            addCriterion("pur_liable_user is not null");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserEqualTo(String value) {
            addCriterion("pur_liable_user =", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNotEqualTo(String value) {
            addCriterion("pur_liable_user <>", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserGreaterThan(String value) {
            addCriterion("pur_liable_user >", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserGreaterThanOrEqualTo(String value) {
            addCriterion("pur_liable_user >=", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserLessThan(String value) {
            addCriterion("pur_liable_user <", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserLessThanOrEqualTo(String value) {
            addCriterion("pur_liable_user <=", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserLike(String value) {
            addCriterion("pur_liable_user like", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNotLike(String value) {
            addCriterion("pur_liable_user not like", value, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserIn(List<String> values) {
            addCriterion("pur_liable_user in", values, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNotIn(List<String> values) {
            addCriterion("pur_liable_user not in", values, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserBetween(String value1, String value2) {
            addCriterion("pur_liable_user between", value1, value2, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNotBetween(String value1, String value2) {
            addCriterion("pur_liable_user not between", value1, value2, "purLiableUser");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameIsNull() {
            addCriterion("pur_liable_user_name is null");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameIsNotNull() {
            addCriterion("pur_liable_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameEqualTo(String value) {
            addCriterion("pur_liable_user_name =", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameNotEqualTo(String value) {
            addCriterion("pur_liable_user_name <>", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameGreaterThan(String value) {
            addCriterion("pur_liable_user_name >", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("pur_liable_user_name >=", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameLessThan(String value) {
            addCriterion("pur_liable_user_name <", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameLessThanOrEqualTo(String value) {
            addCriterion("pur_liable_user_name <=", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameLike(String value) {
            addCriterion("pur_liable_user_name like", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameNotLike(String value) {
            addCriterion("pur_liable_user_name not like", value, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameIn(List<String> values) {
            addCriterion("pur_liable_user_name in", values, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameNotIn(List<String> values) {
            addCriterion("pur_liable_user_name not in", values, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameBetween(String value1, String value2) {
            addCriterion("pur_liable_user_name between", value1, value2, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andPurLiableUserNameNotBetween(String value1, String value2) {
            addCriterion("pur_liable_user_name not between", value1, value2, "purLiableUserName");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("status like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("status not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andAssignTimeIsNull() {
            addCriterion("assign_time is null");
            return (Criteria) this;
        }

        public Criteria andAssignTimeIsNotNull() {
            addCriterion("assign_time is not null");
            return (Criteria) this;
        }

        public Criteria andAssignTimeEqualTo(Date value) {
            addCriterion("assign_time =", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeNotEqualTo(Date value) {
            addCriterion("assign_time <>", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeGreaterThan(Date value) {
            addCriterion("assign_time >", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("assign_time >=", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeLessThan(Date value) {
            addCriterion("assign_time <", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeLessThanOrEqualTo(Date value) {
            addCriterion("assign_time <=", value, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeIn(List<Date> values) {
            addCriterion("assign_time in", values, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeNotIn(List<Date> values) {
            addCriterion("assign_time not in", values, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeBetween(Date value1, Date value2) {
            addCriterion("assign_time between", value1, value2, "assignTime");
            return (Criteria) this;
        }

        public Criteria andAssignTimeNotBetween(Date value1, Date value2) {
            addCriterion("assign_time not between", value1, value2, "assignTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeIsNull() {
            addCriterion("get_task_time is null");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeIsNotNull() {
            addCriterion("get_task_time is not null");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeEqualTo(Date value) {
            addCriterion("get_task_time =", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeNotEqualTo(Date value) {
            addCriterion("get_task_time <>", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeGreaterThan(Date value) {
            addCriterion("get_task_time >", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("get_task_time >=", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeLessThan(Date value) {
            addCriterion("get_task_time <", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeLessThanOrEqualTo(Date value) {
            addCriterion("get_task_time <=", value, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeIn(List<Date> values) {
            addCriterion("get_task_time in", values, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeNotIn(List<Date> values) {
            addCriterion("get_task_time not in", values, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeBetween(Date value1, Date value2) {
            addCriterion("get_task_time between", value1, value2, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andGetTaskTimeNotBetween(Date value1, Date value2) {
            addCriterion("get_task_time not between", value1, value2, "getTaskTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeIsNull() {
            addCriterion("begin_inquiry_time is null");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeIsNotNull() {
            addCriterion("begin_inquiry_time is not null");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeEqualTo(Date value) {
            addCriterion("begin_inquiry_time =", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeNotEqualTo(Date value) {
            addCriterion("begin_inquiry_time <>", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeGreaterThan(Date value) {
            addCriterion("begin_inquiry_time >", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("begin_inquiry_time >=", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeLessThan(Date value) {
            addCriterion("begin_inquiry_time <", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeLessThanOrEqualTo(Date value) {
            addCriterion("begin_inquiry_time <=", value, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeIn(List<Date> values) {
            addCriterion("begin_inquiry_time in", values, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeNotIn(List<Date> values) {
            addCriterion("begin_inquiry_time not in", values, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeBetween(Date value1, Date value2) {
            addCriterion("begin_inquiry_time between", value1, value2, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andBeginInquiryTimeNotBetween(Date value1, Date value2) {
            addCriterion("begin_inquiry_time not between", value1, value2, "beginInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeIsNull() {
            addCriterion("end_inquiry_time is null");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeIsNotNull() {
            addCriterion("end_inquiry_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeEqualTo(Date value) {
            addCriterion("end_inquiry_time =", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeNotEqualTo(Date value) {
            addCriterion("end_inquiry_time <>", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeGreaterThan(Date value) {
            addCriterion("end_inquiry_time >", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_inquiry_time >=", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeLessThan(Date value) {
            addCriterion("end_inquiry_time <", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_inquiry_time <=", value, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeIn(List<Date> values) {
            addCriterion("end_inquiry_time in", values, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeNotIn(List<Date> values) {
            addCriterion("end_inquiry_time not in", values, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeBetween(Date value1, Date value2) {
            addCriterion("end_inquiry_time between", value1, value2, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andEndInquiryTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_inquiry_time not between", value1, value2, "endInquiryTime");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusIsNull() {
            addCriterion("approval_status is null");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusIsNotNull() {
            addCriterion("approval_status is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusEqualTo(String value) {
            addCriterion("approval_status =", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusNotEqualTo(String value) {
            addCriterion("approval_status <>", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusGreaterThan(String value) {
            addCriterion("approval_status >", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusGreaterThanOrEqualTo(String value) {
            addCriterion("approval_status >=", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusLessThan(String value) {
            addCriterion("approval_status <", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusLessThanOrEqualTo(String value) {
            addCriterion("approval_status <=", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusLike(String value) {
            addCriterion("approval_status like", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusNotLike(String value) {
            addCriterion("approval_status not like", value, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusIn(List<String> values) {
            addCriterion("approval_status in", values, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusNotIn(List<String> values) {
            addCriterion("approval_status not in", values, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusBetween(String value1, String value2) {
            addCriterion("approval_status between", value1, value2, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalStatusNotBetween(String value1, String value2) {
            addCriterion("approval_status not between", value1, value2, "approvalStatus");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeIsNull() {
            addCriterion("approval_begin_time is null");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeIsNotNull() {
            addCriterion("approval_begin_time is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeEqualTo(Date value) {
            addCriterion("approval_begin_time =", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeNotEqualTo(Date value) {
            addCriterion("approval_begin_time <>", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeGreaterThan(Date value) {
            addCriterion("approval_begin_time >", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("approval_begin_time >=", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeLessThan(Date value) {
            addCriterion("approval_begin_time <", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeLessThanOrEqualTo(Date value) {
            addCriterion("approval_begin_time <=", value, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeIn(List<Date> values) {
            addCriterion("approval_begin_time in", values, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeNotIn(List<Date> values) {
            addCriterion("approval_begin_time not in", values, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeBetween(Date value1, Date value2) {
            addCriterion("approval_begin_time between", value1, value2, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalBeginTimeNotBetween(Date value1, Date value2) {
            addCriterion("approval_begin_time not between", value1, value2, "approvalBeginTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeIsNull() {
            addCriterion("approval_end_time is null");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeIsNotNull() {
            addCriterion("approval_end_time is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeEqualTo(Date value) {
            addCriterion("approval_end_time =", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeNotEqualTo(Date value) {
            addCriterion("approval_end_time <>", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeGreaterThan(Date value) {
            addCriterion("approval_end_time >", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("approval_end_time >=", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeLessThan(Date value) {
            addCriterion("approval_end_time <", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("approval_end_time <=", value, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeIn(List<Date> values) {
            addCriterion("approval_end_time in", values, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeNotIn(List<Date> values) {
            addCriterion("approval_end_time not in", values, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeBetween(Date value1, Date value2) {
            addCriterion("approval_end_time between", value1, value2, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("approval_end_time not between", value1, value2, "approvalEndTime");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdIsNull() {
            addCriterion("approval_instance_id is null");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdIsNotNull() {
            addCriterion("approval_instance_id is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdEqualTo(String value) {
            addCriterion("approval_instance_id =", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdNotEqualTo(String value) {
            addCriterion("approval_instance_id <>", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdGreaterThan(String value) {
            addCriterion("approval_instance_id >", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdGreaterThanOrEqualTo(String value) {
            addCriterion("approval_instance_id >=", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdLessThan(String value) {
            addCriterion("approval_instance_id <", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdLessThanOrEqualTo(String value) {
            addCriterion("approval_instance_id <=", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdLike(String value) {
            addCriterion("approval_instance_id like", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdNotLike(String value) {
            addCriterion("approval_instance_id not like", value, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdIn(List<String> values) {
            addCriterion("approval_instance_id in", values, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdNotIn(List<String> values) {
            addCriterion("approval_instance_id not in", values, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdBetween(String value1, String value2) {
            addCriterion("approval_instance_id between", value1, value2, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andApprovalInstanceIdNotBetween(String value1, String value2) {
            addCriterion("approval_instance_id not between", value1, value2, "approvalInstanceId");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNull() {
            addCriterion("create_by is null");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNotNull() {
            addCriterion("create_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreateByEqualTo(String value) {
            addCriterion("create_by =", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotEqualTo(String value) {
            addCriterion("create_by <>", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThan(String value) {
            addCriterion("create_by >", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThanOrEqualTo(String value) {
            addCriterion("create_by >=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThan(String value) {
            addCriterion("create_by <", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThanOrEqualTo(String value) {
            addCriterion("create_by <=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLike(String value) {
            addCriterion("create_by like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotLike(String value) {
            addCriterion("create_by not like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByIn(List<String> values) {
            addCriterion("create_by in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotIn(List<String> values) {
            addCriterion("create_by not in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByBetween(String value1, String value2) {
            addCriterion("create_by between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotBetween(String value1, String value2) {
            addCriterion("create_by not between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNull() {
            addCriterion("update_by is null");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNotNull() {
            addCriterion("update_by is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateByEqualTo(String value) {
            addCriterion("update_by =", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotEqualTo(String value) {
            addCriterion("update_by <>", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThan(String value) {
            addCriterion("update_by >", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
            addCriterion("update_by >=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThan(String value) {
            addCriterion("update_by <", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThanOrEqualTo(String value) {
            addCriterion("update_by <=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLike(String value) {
            addCriterion("update_by like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotLike(String value) {
            addCriterion("update_by not like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByIn(List<String> values) {
            addCriterion("update_by in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotIn(List<String> values) {
            addCriterion("update_by not in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByBetween(String value1, String value2) {
            addCriterion("update_by between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotBetween(String value1, String value2) {
            addCriterion("update_by not between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}